home *** CD-ROM | disk | FTP | other *** search
/ Champak 54 / Vol 54.iso / games / turttleo.swf / scripts / __Packages / MochiAd.as < prev    next >
Encoding:
Text File  |  2007-10-01  |  16.4 KB  |  561 lines

  1. class MochiAd
  2. {
  3.    var _parent;
  4.    var fadeout_start;
  5.    var fadeout_time;
  6.    var onEnterFrame;
  7.    var mc;
  8.    var started;
  9.    var _mochiad_bar;
  10.    var last_pcnt;
  11.    var server_control;
  12.    var fadeFunction;
  13.    var _callbacks;
  14.    var _endpoint;
  15.    var _queue;
  16.    var doSend;
  17.    var _id;
  18.    var _mochiad_ctr;
  19.    var _url;
  20.    function MochiAd()
  21.    {
  22.    }
  23.    static function showPreloaderAd(options)
  24.    {
  25.       var _loc29_ = {clip:_root,ad_timeout:3000,fadeout_time:250,regpt:"o",method:"showPreloaderAd",color:16747008,background:16777161,outline:13994812};
  26.       options = MochiAd._parseOptions(options,_loc29_);
  27.       var _loc15_ = options.clip;
  28.       var _loc25_ = 11000;
  29.       var _loc28_ = options.ad_timeout;
  30.       delete options.ad_timeout;
  31.       var fadeout_time = options.fadeout_time;
  32.       delete options.fadeout_time;
  33.       if(!MochiAd.load(options))
  34.       {
  35.          return undefined;
  36.       }
  37.       _loc15_.stop();
  38.       var mc = _loc15_._mochiad;
  39.       mc.onUnload = function()
  40.       {
  41.          this._parent.play();
  42.       };
  43.       var _loc16_ = MochiAd._getRes(options);
  44.       var _loc5_ = _loc16_[0];
  45.       var _loc14_ = _loc16_[1];
  46.       mc._x = _loc5_ * 0.5;
  47.       mc._y = _loc14_ * 0.5;
  48.       var chk = mc.createEmptyMovieClip("_mochiad_wait",3);
  49.       chk._x = _loc5_ * -0.5;
  50.       chk._y = _loc14_ * -0.5;
  51.       var _loc8_ = chk.createEmptyMovieClip("_mochiad_bar",4);
  52.       _loc8_._x = 10;
  53.       _loc8_._y = _loc14_ - 20;
  54.       var _loc24_ = options.color;
  55.       delete options.color;
  56.       var _loc21_ = options.background;
  57.       delete options.background;
  58.       var _loc26_ = options.outline;
  59.       delete options.outline;
  60.       var _loc6_ = _loc8_.createEmptyMovieClip("_outline",1);
  61.       _loc6_.beginFill(_loc21_);
  62.       _loc6_.moveTo(0,0);
  63.       _loc6_.lineTo(_loc5_ - 20,0);
  64.       _loc6_.lineTo(_loc5_ - 20,10);
  65.       _loc6_.lineTo(0,10);
  66.       _loc6_.lineTo(0,0);
  67.       _loc6_.endFill();
  68.       var _loc4_ = _loc8_.createEmptyMovieClip("_inside",2);
  69.       _loc4_.beginFill(_loc24_);
  70.       _loc4_.moveTo(0,0);
  71.       _loc4_.lineTo(_loc5_ - 20,0);
  72.       _loc4_.lineTo(_loc5_ - 20,10);
  73.       _loc4_.lineTo(0,10);
  74.       _loc4_.lineTo(0,0);
  75.       _loc4_.endFill();
  76.       _loc4_._xscale = 0;
  77.       var _loc7_ = _loc8_.createEmptyMovieClip("_outline",3);
  78.       _loc7_.lineStyle(0,_loc26_,100);
  79.       _loc7_.moveTo(0,0);
  80.       _loc7_.lineTo(_loc5_ - 20,0);
  81.       _loc7_.lineTo(_loc5_ - 20,10);
  82.       _loc7_.lineTo(0,10);
  83.       _loc7_.lineTo(0,0);
  84.       chk.ad_msec = _loc25_;
  85.       chk.ad_timeout = _loc28_;
  86.       chk.started = getTimer();
  87.       chk.showing = false;
  88.       chk.last_pcnt = 0;
  89.       chk.fadeout_time = fadeout_time;
  90.       chk.fadeFunction = function()
  91.       {
  92.          var _loc2_ = 100 * (1 - (getTimer() - this.fadeout_start) / this.fadeout_time);
  93.          if(_loc2_ > 0)
  94.          {
  95.             this._parent._alpha = _loc2_;
  96.          }
  97.          else
  98.          {
  99.             var _loc3_ = this._parent._parent;
  100.             MochiAd.unload(_loc3_);
  101.             delete this.onEnterFrame;
  102.          }
  103.       };
  104.       mc.lc.adjustProgress = function(msec)
  105.       {
  106.          var _loc2_ = this.mc._mochiad_wait;
  107.          _loc2_.server_control = true;
  108.          _loc2_.started = getTimer();
  109.          _loc2_.ad_msec = msec;
  110.       };
  111.       chk.onEnterFrame = function()
  112.       {
  113.          var _loc6_ = this._parent._parent;
  114.          var _loc12_ = this._parent._mochiad_ctr;
  115.          var _loc5_ = getTimer() - this.started;
  116.          var _loc3_ = false;
  117.          var _loc4_ = _loc6_.getBytesTotal();
  118.          var _loc8_ = _loc6_.getBytesLoaded();
  119.          var _loc10_ = 100 * _loc8_ / _loc4_;
  120.          var _loc11_ = 100 * _loc5_ / chk.ad_msec;
  121.          var _loc9_ = this._mochiad_bar._inside;
  122.          var _loc2_ = Math.min(100,Math.min(_loc10_ || 0,_loc11_));
  123.          _loc2_ = Math.max(this.last_pcnt,_loc2_);
  124.          this.last_pcnt = _loc2_;
  125.          _loc9_._xscale = _loc2_;
  126.          if(!chk.showing)
  127.          {
  128.             var _loc7_ = _loc12_.getBytesTotal();
  129.             if(_loc7_ > 0 || typeof _loc7_ == "undefined")
  130.             {
  131.                chk.showing = true;
  132.                chk.started = getTimer();
  133.             }
  134.             else if(_loc5_ > chk.ad_timeout)
  135.             {
  136.                _loc3_ = true;
  137.             }
  138.          }
  139.          if(_loc5_ > chk.ad_msec)
  140.          {
  141.             _loc3_ = true;
  142.          }
  143.          if(_loc4_ > 0 && _loc8_ >= _loc4_ && _loc3_)
  144.          {
  145.             if(this.server_control)
  146.             {
  147.                delete this.onEnterFrame;
  148.             }
  149.             else
  150.             {
  151.                this.fadeout_start = getTimer();
  152.                this.onEnterFrame = chk.fadeFunction;
  153.             }
  154.          }
  155.       };
  156.    }
  157.    static function showTimedAd(options)
  158.    {
  159.       var _loc16_ = {clip:_root,ad_timeout:2000,fadeout_time:250,regpt:"o",method:"showTimedAd"};
  160.       options = MochiAd._parseOptions(options,_loc16_);
  161.       var _loc7_ = options.clip;
  162.       var _loc13_ = 11000;
  163.       var _loc15_ = options.ad_timeout;
  164.       delete options.ad_timeout;
  165.       var fadeout_time = options.fadeout_time;
  166.       delete options.fadeout_time;
  167.       if(!MochiAd.load(options))
  168.       {
  169.          return undefined;
  170.       }
  171.       _loc7_.stop();
  172.       var mc = _loc7_._mochiad;
  173.       trace("_showTimedAd");
  174.       mc.onUnload = function()
  175.       {
  176.          if(_global.mochi_after_ad != undefined)
  177.          {
  178.             _global.mochi_after_ad();
  179.             delete _global.mochi_after_ad;
  180.          }
  181.          else
  182.          {
  183.             this._parent.play();
  184.          }
  185.       };
  186.       var _loc8_ = MochiAd._getRes(options);
  187.       var _loc17_ = _loc8_[0];
  188.       var _loc14_ = _loc8_[1];
  189.       mc._x = _loc17_ * 0.5;
  190.       mc._y = _loc14_ * 0.5;
  191.       var chk = mc.createEmptyMovieClip("_mochiad_wait",3);
  192.       chk.ad_msec = _loc13_;
  193.       chk.ad_timeout = _loc15_;
  194.       chk.started = getTimer();
  195.       chk.showing = false;
  196.       chk.fadeout_time = fadeout_time;
  197.       chk.fadeFunction = function()
  198.       {
  199.          var _loc2_ = 100 * (1 - (getTimer() - this.fadeout_start) / this.fadeout_time);
  200.          if(_loc2_ > 0)
  201.          {
  202.             this._parent._alpha = _loc2_;
  203.          }
  204.          else
  205.          {
  206.             var _loc3_ = this._parent._parent;
  207.             MochiAd.unload(_loc3_);
  208.             delete this.onEnterFrame;
  209.          }
  210.       };
  211.       mc.lc.adjustProgress = function(msec)
  212.       {
  213.          var _loc2_ = this.mc._mochiad_wait;
  214.          _loc2_.server_control = true;
  215.          _loc2_.started = getTimer();
  216.          _loc2_.ad_msec = msec - 250;
  217.       };
  218.       chk.onEnterFrame = function()
  219.       {
  220.          var _loc5_ = this._parent._mochiad_ctr;
  221.          var _loc4_ = getTimer() - this.started;
  222.          var _loc2_ = false;
  223.          if(!chk.showing)
  224.          {
  225.             var _loc3_ = _loc5_.getBytesTotal();
  226.             if(_loc3_ > 0 || typeof _loc3_ == "undefined")
  227.             {
  228.                chk.showing = true;
  229.                chk.started = getTimer();
  230.             }
  231.             else if(_loc4_ > chk.ad_timeout)
  232.             {
  233.                _loc2_ = true;
  234.             }
  235.          }
  236.          if(_loc4_ > chk.ad_msec)
  237.          {
  238.             _loc2_ = true;
  239.          }
  240.          if(_loc2_)
  241.          {
  242.             if(this.server_control)
  243.             {
  244.                delete this.onEnterFrame;
  245.             }
  246.             else
  247.             {
  248.                this.fadeout_start = getTimer();
  249.                this.onEnterFrame = this.fadeFunction;
  250.             }
  251.          }
  252.       };
  253.    }
  254.    static function _allowDomains(server)
  255.    {
  256.       var _loc1_ = server.split("/")[2].split(":")[0];
  257.       if(System.security)
  258.       {
  259.          if(System.security.allowDomain)
  260.          {
  261.             System.security.allowDomain("*");
  262.             System.security.allowDomain(_loc1_);
  263.          }
  264.          if(System.security.allowInsecureDomain)
  265.          {
  266.             System.security.allowInsecureDomain("*");
  267.             System.security.allowInsecureDomain(_loc1_);
  268.          }
  269.       }
  270.       return _loc1_;
  271.    }
  272.    static function _loadCommunicator(options)
  273.    {
  274.       var _loc25_ = {clip:_root,com_server:"http://x.mochiads.com/com/1/",method:"loadCommunicator",depth:10337,id:"_UNKNOWN_"};
  275.       options = MochiAd._parseOptions(options,_loc25_);
  276.       options.swfv = options.clip.getSWFVersion() || 6;
  277.       options.mav = "1.4";
  278.       var _loc18_ = options.clip;
  279.       var _loc20_ = "_mochiad_com_" + options.id;
  280.       if(!MochiAd._isNetworkAvailable())
  281.       {
  282.          return null;
  283.       }
  284.       if(_loc18_[_loc20_])
  285.       {
  286.          return _loc18_[_loc20_].lc;
  287.       }
  288.       var _loc21_ = options.com_server + options.id;
  289.       MochiAd._allowDomains(_loc21_);
  290.       delete options.id;
  291.       delete options.com_server;
  292.       var _loc24_ = options.depth;
  293.       delete options.depth;
  294.       var _loc17_ = _loc18_.createEmptyMovieClip(_loc20_,_loc24_);
  295.       var _loc11_ = _loc17_.createEmptyMovieClip("_mochiad_com",1);
  296.       for(var _loc15_ in options)
  297.       {
  298.          _loc11_[_loc15_] = options[_loc15_];
  299.       }
  300.       var _loc6_ = new LocalConnection();
  301.       var _loc16_ = ["",Math.floor(new Date().getTime()),random(999999)].join("_");
  302.       _loc6_.mc = _loc17_;
  303.       _loc6_.name = _loc16_;
  304.       _loc6_.allowDomain = function(d)
  305.       {
  306.          return true;
  307.       };
  308.       _loc6_.allowInsecureDomain = _loc6_.allowDomain;
  309.       _loc6_.connect(_loc16_);
  310.       _loc17_.lc = _loc6_;
  311.       _loc11_.lc = _loc16_;
  312.       _loc6_._id = 0;
  313.       _loc6_._queue = [];
  314.       _loc6_.rpcResult = function(cb)
  315.       {
  316.          cb = parseInt(cb);
  317.          var _loc4_ = this._callbacks[cb];
  318.          if(!_loc4_)
  319.          {
  320.             return undefined;
  321.          }
  322.          delete this._callbacks[cb];
  323.          var _loc5_ = [];
  324.          var _loc3_ = 2;
  325.          while(_loc3_ < _loc4_.length)
  326.          {
  327.             _loc5_.push(_loc4_[_loc3_]);
  328.             _loc3_ = _loc3_ + 1;
  329.          }
  330.          _loc3_ = 1;
  331.          while(_loc3_ < arguments.length)
  332.          {
  333.             _loc5_.push(arguments[_loc3_]);
  334.             _loc3_ = _loc3_ + 1;
  335.          }
  336.          var _loc6_ = _loc4_[1];
  337.          var _loc7_ = _loc4_[0];
  338.          if(_loc7_ && typeof _loc6_ == "string")
  339.          {
  340.             _loc6_ = _loc7_[_loc6_];
  341.          }
  342.          if(_loc6_)
  343.          {
  344.             _loc6_.apply(_loc7_,_loc5_);
  345.          }
  346.       };
  347.       _loc6_._didConnect = function(endpoint)
  348.       {
  349.          this._endpoint = endpoint;
  350.          var _loc4_ = this._queue;
  351.          delete this._queue;
  352.          var _loc5_ = this.doSend;
  353.          var _loc2_ = 0;
  354.          while(_loc2_ < _loc4_.length)
  355.          {
  356.             var _loc3_ = _loc4_[_loc2_];
  357.             _loc5_.apply(this,_loc3_);
  358.             _loc2_ = _loc2_ + 1;
  359.          }
  360.       };
  361.       _loc6_.doSend = function(args, cbobj, cbfn)
  362.       {
  363.          if(this._endpoint == null)
  364.          {
  365.             var _loc4_ = [];
  366.             var _loc3_ = 0;
  367.             while(_loc3_ < arguments.length)
  368.             {
  369.                _loc4_.push(arguments[_loc3_]);
  370.                _loc3_ = _loc3_ + 1;
  371.             }
  372.             this._queue.push(_loc4_);
  373.             return undefined;
  374.          }
  375.          this._id += 1;
  376.          var _loc5_ = this._id;
  377.          if(cbfn === undefined || cbfn === null)
  378.          {
  379.             cbfn = cbobj;
  380.          }
  381.          this._callbacks[_loc5_] = [cbobj,cbfn];
  382.          var _loc7_ = new LocalConnection();
  383.          var _loc9_ = _loc7_.send(this._endpoint,"rpc",_loc5_,args);
  384.       };
  385.       _loc6_._callbacks = {};
  386.       _loc6_._callbacks[0] = [_loc6_,"_didConnect"];
  387.       _loc11_.st = getTimer();
  388.       _loc11_.loadMovie(_loc21_ + ".swf","POST");
  389.       return _loc6_;
  390.    }
  391.    static function fetchHighScores(options, callbackObj, callbackMethod)
  392.    {
  393.       var _loc1_ = MochiAd._loadCommunicator({id:options.id});
  394.       if(!_loc1_)
  395.       {
  396.          return false;
  397.       }
  398.       var _loc4_ = ["fetchHighScores",options];
  399.       _loc1_.doSend(["fetchHighScores",options],callbackObj,callbackMethod);
  400.       return true;
  401.    }
  402.    static function sendHighScore(options, callbackObj, callbackMethod)
  403.    {
  404.       var _loc1_ = MochiAd._loadCommunicator({id:options.id});
  405.       if(!_loc1_)
  406.       {
  407.          return false;
  408.       }
  409.       var _loc4_ = ["sendHighScore",options];
  410.       _loc1_.doSend(["sendHighScore",options],callbackObj,callbackMethod);
  411.       return true;
  412.    }
  413.    static function load(options)
  414.    {
  415.       var _loc13_ = {clip:_root,server:"http://x.mochiads.com/srv/1/",method:"load",depth:10333,id:"_UNKNOWN_"};
  416.       options = MochiAd._parseOptions(options,_loc13_);
  417.       options.swfv = options.clip.getSWFVersion() || 6;
  418.       options.mav = "1.4";
  419.       var _loc7_ = options.clip;
  420.       if(!MochiAd._isNetworkAvailable())
  421.       {
  422.          return null;
  423.       }
  424.       if(_loc7_._mochiad_loaded)
  425.       {
  426.          return null;
  427.       }
  428.       var _loc12_ = options.depth;
  429.       delete options.depth;
  430.       var _loc6_ = _loc7_.createEmptyMovieClip("_mochiad",_loc12_);
  431.       var _loc11_ = MochiAd._getRes(options);
  432.       options.res = _loc11_[0] + "x" + _loc11_[1];
  433.       options.server += options.id;
  434.       delete options.id;
  435.       _loc7_._mochiad_loaded = true;
  436.       var _loc4_ = _loc6_.createEmptyMovieClip("_mochiad_ctr",1);
  437.       for(var _loc8_ in options)
  438.       {
  439.          _loc4_[_loc8_] = options[_loc8_];
  440.       }
  441.       if(_loc7_._url.indexOf("http") != 0)
  442.       {
  443.          options.no_page = true;
  444.       }
  445.       var _loc10_ = _loc4_.server;
  446.       delete _loc4_.server;
  447.       var _loc14_ = MochiAd._allowDomains(_loc10_);
  448.       _loc6_.onEnterFrame = function()
  449.       {
  450.          if(this._mochiad_ctr._url != this._url)
  451.          {
  452.             this.onEnterFrame = function()
  453.             {
  454.                if(!this._mochiad_ctr)
  455.                {
  456.                   delete this.onEnterFrame;
  457.                   MochiAd.unload(this._parent);
  458.                }
  459.             };
  460.          }
  461.       };
  462.       var _loc5_ = new LocalConnection();
  463.       var _loc9_ = ["",Math.floor(new Date().getTime()),random(999999)].join("_");
  464.       _loc5_.mc = _loc6_;
  465.       _loc5_.name = _loc9_;
  466.       _loc5_.hostname = _loc14_;
  467.       _loc5_.allowDomain = function(d)
  468.       {
  469.          return true;
  470.       };
  471.       _loc5_.allowInsecureDomain = _loc5_.allowDomain;
  472.       _loc5_.connect(_loc9_);
  473.       _loc6_.lc = _loc5_;
  474.       _loc4_.lc = _loc9_;
  475.       _loc4_.st = getTimer();
  476.       _loc4_.loadMovie(_loc10_ + ".swf","POST");
  477.       return _loc6_;
  478.    }
  479.    static function unload(clip)
  480.    {
  481.       if(typeof clip == "undefined")
  482.       {
  483.          clip = _root;
  484.       }
  485.       if(clip.clip && clip.clip._mochiad)
  486.       {
  487.          clip = clip.clip;
  488.       }
  489.       if(!clip._mochiad)
  490.       {
  491.          return false;
  492.       }
  493.       clip._mochiad.removeMovieClip();
  494.       delete clip._mochiad_loaded;
  495.       delete clip._mochiad;
  496.       return true;
  497.    }
  498.    static function _isNetworkAvailable()
  499.    {
  500.       if(System.security)
  501.       {
  502.          var _loc1_ = System.security;
  503.          if(_loc1_.sandboxType == "localWithFile")
  504.          {
  505.             return false;
  506.          }
  507.       }
  508.       return true;
  509.    }
  510.    static function _getRes(options)
  511.    {
  512.       var _loc3_ = options.clip.getBounds();
  513.       var _loc2_ = 0;
  514.       var _loc1_ = 0;
  515.       if(typeof options.res != "undefined")
  516.       {
  517.          var _loc4_ = options.res.split("x");
  518.          _loc2_ = parseFloat(_loc4_[0]);
  519.          _loc1_ = parseFloat(_loc4_[1]);
  520.       }
  521.       else
  522.       {
  523.          _loc2_ = _loc3_.xMax - _loc3_.xMin;
  524.          _loc1_ = _loc3_.yMax - _loc3_.yMin;
  525.       }
  526.       if(_loc2_ == 0 || _loc1_ == 0)
  527.       {
  528.          _loc2_ = Stage.width;
  529.          _loc1_ = Stage.height;
  530.       }
  531.       return [_loc2_,_loc1_];
  532.    }
  533.    static function _parseOptions(options, defaults)
  534.    {
  535.       var _loc4_ = {};
  536.       for(var _loc8_ in defaults)
  537.       {
  538.          _loc4_[_loc8_] = defaults[_loc8_];
  539.       }
  540.       if(options)
  541.       {
  542.          for(_loc8_ in options)
  543.          {
  544.             _loc4_[_loc8_] = options[_loc8_];
  545.          }
  546.       }
  547.       if(_root.mochiad_options)
  548.       {
  549.          var _loc5_ = _root.mochiad_options.split("&");
  550.          var _loc2_ = 0;
  551.          while(_loc2_ < _loc5_.length)
  552.          {
  553.             var _loc3_ = _loc5_[_loc2_].split("=");
  554.             _loc4_[unescape(_loc3_[0])] = unescape(_loc3_[1]);
  555.             _loc2_ = _loc2_ + 1;
  556.          }
  557.       }
  558.       return _loc4_;
  559.    }
  560. }
  561.